____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
DebugWIRE
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
debugWIRE ist ein serielles Kommunikationsprotokoll, das vom Prozessorhersteller Atmel entwickelt wurde. Es wird fΓΌr die Programmierung und Fehlersuche bei Atmel AVR Microcontrollern eingesetzt.
Contents
β’ Protokoll
β’ Einzelnachweise
β’ Weblinks
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Protokoll
Das proprietΓ€re debugWIRE-Protokoll ist als einfache Alternative zu JTAG gedacht und wird bei Prozessoren mit begrenzten Ressourcen β speziell wenigen Anschlusspins β eingesetzt; die meisten modernen 8-bit-Prozessoren von AVR unterstΓΌtzen das Protokoll. debugWIRE erlaubt vollen Lese- und Schreibzugriff auf den Speicher und die Γberwachung des Programmflusses. Dabei kΓΆnnen nur die Aktionen durchgefΓΌhrt werden, die auch bei normalem Programmablauf mΓΆglich sind. Breakpoints werden durch EinfΓΌgen eines Break-Opcodes (0x9598)cite-ref-1[1] gesetzt, dies erfolgt durch jeweilige Neuprogrammierung des Flash-Speichers, der jedoch nur eine begrenzte Zahl von Schreibzyklen zulΓ€sst (garantiert 10000)cite-ref-2[2].
ProgrammiergerΓ€te
Protokoll-Spezifikation
debugWIRE kann durch Programmieren des Fuse-Bits DWEN (debugWIRE enable) aktiviert werden, das sich im βHigh-Fuse-Byteβ befindet. Danach ist die /RESET-Funktion nicht mehr verfΓΌgbar und die Programmierung ΓΌber ISP ist nicht mehr mΓΆglich. Die Programmierung der Fuse-Bits kann nicht ΓΌber debugWIRE erfolgen, dazu muss die debugWIRE-Funktion durch ein Kommando temporΓ€r abgeschaltet werden, um mit dem Debugger erneut per ISP zugreifen zu kΓΆnnen. Dies erfolgt bei Verwendung des Entwicklungssystems Atmel-Studio transparent fΓΌr den Anwender.cite-ref-4[4] debugWIRE benutzt serielle Kommunikation ΓΌber eine Ein-Draht-Leitung mit Open-Drain-Ankopplung. Die Standard-Taktrate ist 1/128 des Prozessortaktes. Eingeleitet wird die Kommunikation durch Senden des Break-Zustandes (alle Bits 0), als Antwort sendet der zu testende Prozessor das Byte 0x55, das aus abwechselnd Null- und Eins-Pegeln besteht. Dies erlaubt dem Debugger eine einfache Identifizierung der Taktrate.cite-ref-5[5]cite-ref-6[6]
Einzelnachweise
cite-note-11. β AVR Assembler Instructions
cite-note-22. β ATtiny25-ATtiny45-ATtiny85_Datasheet-Summary.pdf
cite-note-33. β debugWIRE-Interface des AVR Dragon
cite-note-44. β debugWIRE-Artikel
cite-note-55. β The debugWIRE protocol (Englisch)
cite-note-66. β Simple stand-alone debugWIRE debugger (open source)
Weblinks